Fix flaky test - #3231
Fix flaky test#3231
Conversation
Fix flaky test if there's a race in the shared pool between parallel test executions.
There was a problem hiding this comment.
🟡 Changes recommended
The FakeTimeProvider assertion will fail deterministically on .NET 8+ until corrected.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
This pull request isolates cancellation-token pool tests from the shared process-wide pool to prevent race-related flakiness.
Changes:
- Uses a dedicated pool for reusable-pool tests.
- Exposes the pooled implementation internally for testing.
- The
FakeTimeProviderreuse assertion still needs correction.
File summaries
| File | Summary |
|---|---|
test/Polly.Core.Tests/Utils/CancellationTokenSourcePoolTests.cs |
Uses an isolated pool but contains an incorrect reuse assertion on pooled targets. |
src/Polly.Core/Utils/CancellationTokenSourcePool.Pooled.cs |
Enables internal construction of the pooled implementation for tests. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3231 +/- ##
=======================================
Coverage 98.02% 98.02%
=======================================
Files 321 321
Lines 7099 7099
Branches 1089 1089
=======================================
Hits 6959 6959
Misses 98 98
Partials 42 42
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. |
Updated [Polly](https://github.com/App-vNext/Polly) from 8.7.0 to 8.8.0. <details> <summary>Release notes</summary> _Sourced from [Polly's releases](https://github.com/App-vNext/Polly/releases)._ ## 8.8.0 ## Highlights * Add `EnableReloadsWithMonitor()` accepting custom `IOptionsMonitor` by @arashzjahangiri in App-vNext/Polly#3140 * Return null from `FaultGenerator` when no fault is generated by @dualfroz in App-vNext/Polly#3220 ## What's Changed * Update workflow timeout by @martincostello in App-vNext/Polly#3106 * Set `SOURCE_DATE_EPOCH` by @martincostello in App-vNext/Polly#3115 * Use `NUGET_API_KEY` by @martincostello in App-vNext/Polly#3116 * Test refactoring by @martincostello in App-vNext/Polly#3132 * Avoid test flakiness by @martincostello in App-vNext/Polly#3134 * Group github/codeql-action updates by @martincostello in App-vNext/Polly#3147 * Fix wrong word in hedging documentation by @latent-9 in App-vNext/Polly#3191 * OSMF sponsorship notice by @joelhulen in App-vNext/Polly#3194 * Fix XML doc comment on `PipelineExecutedArguments` by @JiuYue0820 in App-vNext/Polly#3201 * Update to xunit v3 by @martincostello in App-vNext/Polly#3131 * .NET 11 preparation by @martincostello in App-vNext/Polly#3225 * Fix flaky test by @martincostello in App-vNext/Polly#3231 ## New Contributors * @arashzjahangiri made their first contribution in App-vNext/Polly#3140 * @latent-9 made their first contribution in App-vNext/Polly#3191 * @JiuYue0820 made their first contribution in App-vNext/Polly#3201 * @dualfroz made their first contribution in App-vNext/Polly#3220 **Full Changelog**: App-vNext/Polly@8.7.0...8.8.0 Commits viewable in [compare view](App-vNext/Polly@8.7.0...8.8.0). </details> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Fix flaky test if there's a race in the shared pool between parallel test executions.